#include "jsoncpp_test.h"

#include <iostream>
#include <json/json.h>
#include <json/value.h>
#include <json/reader.h>


int jsoncpp_test()
{
    Json::Value root;
    root["id"] = 1001;
    root["data"] = "hello world";
    std::string request = root.toStyledString();
    std::cout << "request is " << request << std::endl;

    Json::Value root2;
    
    // 使用 Json::Reader 解析 JSON 字符串
    Json::Reader reader;        // 
    reader.parse(request, root2); // 将 request 字符串解析到 root2 中。
    std::cout << "msg id is " << root2["id"] << std::endl << "msg is " << root2["data"] << std::endl;

    // // 使用 Json::CharReader 解析 JSON 字符串
    // Json::CharReaderBuilder readerBuilder;  // 创建 CharReader 构建器
    // std::string errs;

    // // 将字符串转换为输入流
    // /* 这个类的作用是将字符串流化，使得你能够像处理输入流（例如从文件或标准输入）一样，从一个字符串中读取数据。 */
    // std::istringstream s(request);

    // bool parsingSuccessful = Json::parseFromStream(readerBuilder, s, &root2, &errs);

    // if (parsingSuccessful) {
    //     // std::cout << "Parsed JSON: " << root2 << std::endl;
    //     std::cout << "msg id is " << root2["id"] << std::endl << "msg is " << root2["data"] << std::endl;
    // } else {
    //     std::cerr << "Failed to parse JSON: " << errs << std::endl;
    // }

    return 0;
}